{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# PCA principal component analytics\n",
    "PCA是一种无监督的学习方式，是一种很常用的降维方法。在数据信息损失最小的情况下，将数据的特征数量由n，通过映射到另一个空间的方式，变为k(k<n)。\n",
    "之前工程师二年时候学过，但是当时只沉迷于游戏，只要过了考试就行（虽然莫名其妙考了高分），其实并不懂那是啥。。  \n",
    "\n",
    "现在想到用python来实现一次加深自己对PCA的理解。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 10)"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "sample_origin = [[2.5,0.5,2.2,1.9,3.1,2.3,2,1,1.5,1.1], [2.4,0.7,2.9,2.2,3,2.7,1.6,1.1,1.6,0.9]]\n",
    "sample_origin = np.asarray(sample_origin)\n",
    "sample_origin.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1b6bce3f6d0>]"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(sample_origin[0], sample_origin[1], 'o')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[ 0.69,  0.49],\n",
       "        [-1.31, -1.21],\n",
       "        [ 0.39,  0.99],\n",
       "        [ 0.09,  0.29],\n",
       "        [ 1.29,  1.09],\n",
       "        [ 0.49,  0.79],\n",
       "        [ 0.19, -0.31],\n",
       "        [-0.81, -0.81],\n",
       "        [-0.31, -0.31],\n",
       "        [-0.71, -1.01]])"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Normalization\n",
    "x = sample_origin[0] - np.mean(sample_origin[0])\n",
    "y = sample_origin[1] - np.mean(sample_origin[1])\n",
    "sample = np.matrix([[x[i], y[i]] for i in range(len(x))])\n",
    "sample"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1b6bcbf4460>]"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Normalization result\n",
    "plt.plot(x, y, 'o') "
   ]
  },
  {
   "attachments": {
    "22c7e779-4899-4c42-92c6-9037689ce99f.png": {
     "image/png": "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8sgj3SGHHOJWXHHFjLf0uC8iwHY5CyywgHd+OnjwYO89no2eFYRAtyGw5JJLuimnnNJvI7bhhhv66xtvvLHbitGn5RVp6tPV23cLh6fv3377zXuDx9s3JOr3v/+9tE0dXuXUE5twc5QR+BofNGiQG3XUUd3KK6/sk9xhhx3cCSecUEbySkMItBSB008/3bdl22hcbbml8OfKTKQpF0yK1AgCn3zyidcCbL311v4LqpG0wnf/+c9/+gGTgfO1115zE088sbx/hwB12DVE6YgjjnBTTDGFm2OOORwbMZcxpUr9TzPNNO6jjz7y6U077bTu8ccf77DSS5y+hABt7vnnn/cabiM4ZZSPdCeffHLHHqv8b9CWH3nkkTKSVholISDSVBKQSiYegSuvvNJ3AhtvvLGfNmGz3bLCNtts42yT5yFDhridd97ZsbmvQuchwGAw9dRTe+0g5On888/37YH641kj4dFHH3XLLbecH2ReeeUVny55aL/BRlDVu0kI0F7RdLPRvO1x2Wgbtrz4wCRtCBMHU3XffvttoX03LS2dm4OASFNzcFWqAQLWAdAZlEWa6KTYrPnmm2/2OS277LLu7LPPdhdddFGQsy47BQEIDPWPdolA/Y099thuzjnnbHiqDpsmDsKTTz7p88HWjXanIASagQDtl/aFlqlMTdOtt97qP/xI/1//+pdvy4sssojacjMqsc40RZrqBE6vFUOADqZM0kTu9913X0WIM844w0000UQNay0qCeqiVAQgSyFpInG+0scaa6yGSdOnn35aJStTG19++WXVPf0QAmUjALGBMLEAhesyQtinkR5TgF999VUZSSuNkhAQaSoJSCWTjkAzSFN6jnraaQhENT+QpkUXXVRf0Z1WUZInFwJGmtZee+3SSFOujBWprQiINLUV/v6TuZEm1M8KQuCaa67xmie1B7WFbkVApKlba64xuUWaGsNPb+dEwEjT1VdfnesNOqR9993X7brrrg6Db5aVr7/++o6vujwHBuGbbrqp23bbbd3uu+/uDcbLUqHnKoAiJSLAlAP2aKx+zBMwFuegPVCXO+64o28TW2yxhdtkk03ceuutl9om8HdD3J122sntvffe0mzlAV1xMhGohzTRjvfcc0/fhv/xj3/49ktfladPI47acma1ND2CSFPTIVYGIGCk6bzzzssFCKufll56aa+NwBYG55WnnHKKu/jii911113n7rzzTm9Ufs8991Sd0VywMoul7csss0zlfWxnotNDuQTpY5HAgI77rbfeakvJsDeCMNmCgKwVbgxMEGfaAMeBBx5YqW/qPlr/9pv0Iei0me23396vQrI0WGmp0NkI0E6Tjk75+KmHNLFQxdrhSiut5I455hh3ztrNyKIAACAASURBVDnn+LZ6yy23VNo27Tdsy2hm49oy/8vdFJLqlPt5AuPCoYce6t0wtKsdiDTlqSnFaRgB/inoLE466aTcaT311FNu/PHH9++xXB0/PEUC/1RvvPGGwz8UedPp9OcAnldccYV7++23vfEq5LKVgTYw3XTTVYy0qZ+FFlook8zixBRPyTbYFPWQTD50tpCov/zlL/6rPm8n3Up8lFcvAg8//LDbaKONHK5KwgOnpe0aLHul67lCDgzB0QDllYl4uEaxtgwByPsuuRKXtmttecYZZ/RuPKKydepvPljC+rRrCGNW4H94q6228uUHt80226wQdlnp530u0pQXKcWrGwH7R6ejOPzww31Dz9tRoJmyDmbdddfNHGCThGRKCMPjuMESWW6//fakV7vuvnlIjwqOtg4MCMcdd5zXvuSth2haRX+TD9MQaIr4OuZguoxBJ65OoukPHz7cDRgwwLeFWWedtTCBtvToeFnC/fLLL9utqjOasFZhUpVxE36wEivPdDjlRavRSeHNN990SUdYP1maymaVCRk4jDTRhvO0Y+T55Zdf/P+h9Wu33XZbXWLSlsn/0ksvjX3/pZde6ri2nFSn3LdAu33xxRftZ+Vsbku4QX8AfnwAtjqINLUa8X6WHx0J/9hMyVgnwYqpvGplOiamV+zd448/vu6OgC0Ktttuu6oaQD7speKmDRlwWCrPMWzYMGdfQ3RG999/v3vggQf8cf3111el2e4faNQWX3zxWJxswKFjWnjhhVsmKvVtdRiek+SME4yvVHsXe7W8g1Q0LbSPE044YQ0+1DHpR9NlagQnrXbY1CLpWhvg3GnEA/nwvM4AkxQoK7aCTz/9dFKUlt4vivX0009fmeptpaD0aRzWHrnmg8T+v7JkwWP9uOOO69+njj7//POsV2Kff/fdd7EfP7RxzBuibTk2kRbctL6U/6EbbrjBH2QLOQr7UojRY4895rGJkx3nnxbAvujsg73byFmkqRH09G4uBPgi4h/Azlzn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mpqPcb/OgWkztgxgr6Stt97ab0pZFiA33HCD23zzzf0U3auvvuqmm266ynRdWXkoHSEgBISAEBAChoBIkyGhc1MQuOqqq9zkk0/uNt54Yz+dxsa6ZQUI0zHHHOOTO/nkkx15nXDCCWUlr3SEgBAQAkJACFQhINJUBYd+NAMB7IzMBqks0oQGa8opp3S33XabF5nNLy+++GJ3wAEHNKMISlMICAEhIASEgBNpUiNoCQJlkyaEvu+++yqyf/DBB+7111+v/NaFEBACQkAICIGyERBpKhtRpReLQDNIU2xGuikEhIAQEAJCoEkIiDQ1CVglW42AkaZbb721+oF+CQEhIASEgBDoEgREmrqkorpdTCNNGGvnCcTff//93V577eV23XVXt/322/vVd1tssYUbOHCg23DDDd0666zj1l577diDZ5tuuqnbbrvt3O677+4OOuggrazLA7ziCAEhIASEQCICIk2J0OhBmQgYaRoyZEiuZIkPQcIfE8dxxx3n3RbgusAOjMq5Ds9oss4//3x3xBFHuGWWWaby/mijjeZGjBiRK+++HAm8IJCcuyXQFtKObilHp8mZhinPFKoRaBQvFq/cfPPN7qSTTnJPP/10deL61TUIiDR1TVV1t6B0OJCfIi4BPv74YzfbbLNViM8DDzxQCAQ6qTfeeMNrqMgbstCfw/333++uueYa984773hP6kceeWRXwIET05VXXtmxQjI8Vl11Vffbb791RRk6UUj+v+JwRasr0lRbY3x0xeGFNjsPXkcffbR78skn3b333usGDBjgHn/88dpMdKfjERBp6vgq6n4B7QsN4nLwwQf7aTIITZ6AA0ve45hvvvncjz/+mOe1mjjPP/+8m2mmmdwPP/xQ8wz5zHVBzcMuvIEWKa4TP+SQQxxbzRDQxk0yySQdM2WJvEnaL0jT559/Hnt0AmlKkjtsOpSvLHcbYbqNXCdhyv2w/SS1p0byznq3m/F6+OGHq/CzstKH8T9IwHRg/fXXt0c6dxECIk1dVFndKCqd39/+9reaI6/WB3K13377VYjTtttuW/dAjx0U9lBhQL5Bgwa5Cy64ILztr6+++mrvMBM7rGHDhrlbbrnF32fbliuvvLLy7Prrr695t5037rrrLrfWWmvF4mRkFXcNCy+8cNPFJD9IDzhb3tFMecYAEp2yID7Y2wH+L730kn+dr3UGc5uaRYPWrsAASFtJCpQP27u8bT4pnbLuv/DCCxVMwfbOO++s1I1hzdnIIP9zTI9TjlaETseL/x1ry3F4sRdmHF6heQA2l3vssUcr4FQeJSMg0lQyoEquFgE6GA46Q7uujZV8h/eWXnrpCnG68MILkyNnPLHOzqLR6a200ko1AwLxIB6rrbaazxcNzc477+xfY4DkqxEV++qrr15oytHybfYZWRmoo+Ul348++sjv2WeDYrNkIX2M+BdddFE37bTTetIAgQoD8qF9xKN7NECMKAMe5cGb+jBywjvcI93HHnuscj+aRit+P/fcc27cccd1N910U2x2kKUNNtgg9lk7btLm+VDAOexf/vIXt8kmm/gPAuqCxRfgusACCzjIkv3P/v73v3dofVsRhg4d6ttnK/LKkwd4sftAXrx++uknN8YYYyTiRTsBY7BV6D4ERJq6r876pcTM/4899ti+s5lgggm8bUCjQNBpYaOQpil67bXXfJ7LLrtshYAMHz7crbnmmo4v9k4N7Pc3/fTTu2eeeaZGxC233NJrf+IIVU3k4AYkaJtttgnuJF+CLQMDhIJ80AhRf9gkhYPFjTfe6A32w3vRVE855RSf1p577ukfkR5EpBGtYzSPRn9jH/aPf/yj0kYsvU8//dQPtjhf7bQAUaWOrrjiCi8auB544IHun//8Z42oZ511lv9fSaun6EvE5WOjSDvrRryuu+66aNE9YaJvieJFn8Em42BSBJeaDHSjbQiINLUNemVcFIHBgwf7Tp6Onik/vugaCXw5o8WIdmxhmnRsfJWTJ6QB26gxxxwz9Z3w/XZeH3744X4QDGWAMB111FG+w15vvfUKddyUn02X84S33nrLY7bLLrtU8rDVjBiiE8CW53vvvXdqktTP3HPP7Qebr7/+2k8tQaA6adBBRsj8d999V1UWbMc222yzqnud8sM+CDbaaCNPotmC6LTTTovFFazRSt1xxx25xQeTRRZZJDa9pET6El7LL798FV7//ve/fRsGFw5Iv0L3ISDS1H111m8lpqOx6TJIDFqPegdO0mIKi5UvWeGhhx6qEID555+/7Su20FowdRUGVuVEA9OYECObEkM7A252QDyL4Adp2meffaLZxP7GfgOtEtNoFix/kxW5Zp99dhf3pW7v2Jll2sh9ySWX+GnRVhqAP/HEEyZG5RzVMoIjmj0rGxFpYxCSa6+9tvJeeBFXj2gxWxWQmY20mVrEpg/yisxJgSk7tH55A2nNOuusudtYX8MLlykhXtgx2f8e58svvzwvlIrXQQiINHVQZbRbFDpROq48R7tkxViYTt46HwbRegJlXGGFFRzaq6xA3IUWWsgPir/++mtW9KY+p474Qg0Jj2kMXn755aq8mRJj0EJ+AkQrelS9kPED0rTjjjtmxOp9jKwcFrDrQbP37bff+lsQnz//+c81BuAWPzyzoos6Z7rHSGD4vFnXaBbJl7Jb2GGHHdxyyy1XVTaeLbnkkn4gtDJTPrRPUQN34lo9kpbFrD7x3gAAIABJREFUT6pHy7cZZ1aNUj4IrcmRlA8EC3cEWfHsfdod9Z03fl/DC0z5KLPyo9lu5P/PcNW5vQiINLUX/47KHYNHbBryHKwga1dATiNN2Ad89tlnhUVh4J1xxhndpZdemvkunT8khTyznHOGmwhnJlxHBGTBIJUO2QIyIZuRI7tvg/A333xjtxo6Y39U71QTNmnIeOqpp1ZkYLqCe++//37lXtIF9YXR91hjjeVdDyTFK/s+00UhtgyAtDl87kQDBtWs9LRB0sr33nvvRaP6uqIesRWykFSP9rwZZ8jgDDPM4MuURUax22K6LdrOkuQiHvVleCTFs/vkD9Z9Ba9zzz23EF6Gg86djYBIU2fXT1dKx3QE02h5j6JqajphBhs6WA5IXt6O2QClg8ZLeJZ/Jjp+CNN5553nRh999MQVaaSLFuScc86xLGrOLJfPQ0hDQhRNxDQurBgjIB8rzELNk72DTyvwqceJHtNPUVmxeWEFW/Q+7hfSwhdffOHmnHNObw8VDsz4s0G+LNs0yjjxxBN7gkv8Y445Ji27yjNwjMoa9zvpA4A2hSYIjSQyEDBsR4a4KTumt8KVmGnlg+iTDukR0urRR3DOG2zHyR+9l1QeS8fOzz77rFt88cX9NkPIEmrTLE54hjRjzxfWYfg8KgfthXSj95Pat5GmuPZg7b6b8KJvScMrxE7X3YOASFP31FXTJWWQoPPOc6QJw1YmRY+09OKeIaMZFtezFJr30VzErRSy/MADMoIfG+JjH8QgwJRNvSEPtkmDEnmy0gkZbIqL9CaaaKIqzZPJxgo64tpAY/fznqOyMt0HaYre53dS4BnuIi6++GL/HgOz2WNhEI58X331VdLr/h3i4L0aI+upp57azTvvvP5+4ksjH8TJGXcvKR3i4hCVvQstYCiNPDyLBqZNQzcP7777ro/75ZdfRqP6ekRjZelwTqpHeznv/6fFTzuTH4SJ84MPPujlzFqNiOaE6UaTOZo+98OD6Tawoj2H95PaN3HGGWcc11fwwj1GGl5R/PS7OxAQaeqOemqJlExFYJfBlzVaonXXXdcbimLQSIe60047VY48UyrNFJqpp5lnntn7xmEwKRrouCEADARxgTTxMWQrzYhj04LRL2XibrXVVnVPXcXlH3ePQQV/MeEybrQFDEyQEeQKscAomWdxg1Bc+ln3Hn30UU8KsuLZc+TF2B5NFNfIduaZZ1Y8Y1MH448/vt/qxt4Jz7yz7777OsiHBQgMZUoyrrZ4ZZyN9EAWCciPYTdEGkLAyr8w4LMrXC1o5aOthiGrHs1rfvhOmdfkz/+OkRd+s9KLAT7EOponZZtrrrmq2lg0TvibdKmrsE2Gz6PXyAMp7ga8+IDKwuvEE08shFcUD/3uTAREmjqzXtoiFZ1b3qMtAo7M9JdffnELLrig94WSt0OOyst7kIw42xQ8T2Pwyt5mYfoMAmgH8DdEB89vAvvp2Ve13YvmV8Zv0sawlhVnJhfbMjAwkT+YhPmzKq3ML11II5qUPMHwhWBAxJm24l3ws6ktZOWZTTVauvjqYZoTz8rh6juev/LKK768pEsdGA72bplnszHiY4KAvRryIxMaP7RnYWCbHzRRFpLKF9ajxbV6ZKEB7hXCerQ4jZ5ff/1170SUuqC9hME+CHbbbbcKwQ2fc019hJq06PPob8pQhDQRnw+1aHtIw4tytAMviDRlS8OLZ0XwiuKn352JgEhTZ9aLpEpAgEGSr2KWoDc6YGJLFSUBLAtm2gJtzhJLLFHZKwpxJpxwwsqAPdlkk7k11lijIiX2CwxGjcpUSTDmAlsVOmpIE6ty2AaFAZyBnPtRr9oYXRf1kxOTbeVWEdLEFBwrDpF1mmmm8VNP2HcgpxECzpQjNIYGPzyIQ4qoA+IbpqQ56qij+mesCmTlXZRUVYRt8II8GcAhqTgyPfTQQz3ONkUbloOsiD/ppJPWeIGmfNF6CesRck49nnHGGR6ruHpssCj+dbBbbLHFKrjSti0YYQP3OeaYw+NqU6gWh/JNN910bq+99rJbmWfqN6y/zBec85q6cJk+7yThldTu8+STFSfEC60c5bAAXrRN2mgaXrSfInhZ+jp3NgK9LaGz5ZR0QsAPTEwRskrJBt5GYOHLm0E4nL4iXQYIO4fpc8+OUMtBfLxBo3mgQ21WgChijM7XtclheSFPGJAJp5zsgVVWKEKayD/pCOWhTNRnGHiP8oUY23PuW7pcNyuQx3jjjef97MRhzfMwPPDAA95GLurcEv9HZjtk8cN6pIxWDtKM1qO9U8aZ9Mkrmofdt7PJE+aJ9oepVNv7L3yWdE06RUkTWj3ISChDEl7kGy1Lkiz13Dc8onnYfTuHslo+rFhFA1YEL3tX585GQKSps+tH0gUIoDnhCy86MAVRUi/p5MIOkN98DUa/bFMTSXjI4EDaaCSaEZCVjWGxm4nrpKN5sn8XS8nDTUKjcer5nXdlVt60WeHH0vu4ZeZ502hGPPNojpF0nrDUUkvFTvUacbB0rB7RcOapxzx5tyIOPprYYLaozNGptixZ+wpeaJjQghbFKwsfPW8/AiJN7a8DSZADAexzmCp5++23c8SOjwKRuOyyy6oessoP49O0FVxVLyT8uOaaa7xX5YTHDd+m84Vc5JmOgohgy5TlCqBhoUpKANsy9umCUHRKwGkqRDjPoIdNm60qjJMfo3X2LoRUWz2WQdTj8mrGPaaeWUXYyKrRInJ1O17sIMDUYdRrfBEMFLdzERBp6ty66ROS0dHawMMZn0HsH1ZkgMSj8p/+9KeKAXE9wDCw4WIgagBLWhARfMl8+OGH9STdsndOP/30XLjxlWsr1lomXAMZ0S4gnZ1E8tCoMR2ZFWjHECJr40nxWd1IGyMwhYvjy24JbIdTr9uKesvYzXhBtsvWyNaLo94rHwGRpvIxVYojEcCeAyNKVhU988wz3u4HJ5FoTI4//vhcOOEEEKNftERFAwPZU0895UkRHRlGtwpCoGwEinwAlJ230hMCQqC1CIg0tRbvfpMbhGW22WbzThghLDg4fPPNN335mY7BNinr65zn+Ixi+wa+PDlY6ssR/r755pv9Rq6sUiLtrbfe2tv+kD9520E8BSEgBISAEBAC9SIg0lQvcnovEwEIjG0XYbu/81WOMXN0hUw0MQgTzvSM8DR6Zmoui6RFZdBvISAEhIAQEAIhAiJNIRq6Lh0BDGpZ1m+EBWNY/PawEicrsH3JXXfdVfgwbVRUI5WVn54LASEgBISAEEhDQKQpDR09awgBtEps+xFqlZhWQ2vEUmS8KssepCGI9bIQEAJCQAi0EAGRphaC3d+yQrvE0lum6QgQJPzT2DYOGIibBqq/YaPyCgEhIASEQPchINLUfXXWNRLjbgCt0vDhwysy33DDDX5jW/wIMX2WN7AXGcbjeQMaLcgaWi5ps/KipnhCQAgIASGQhoBIUxo6etYwApCXMEBg2Em92RomXBo8++yzIk0h+LoWAkJACAiBhhAQaWoIPr3cCgTQTkGCvvjii0LZsemmNE2FIFNkISAEhIAQSEFApCkFHD1qPwKff/653xtunXXWcbbzOl69f/3119gj1GCh5crjD6r9pZQEQkAICAEh0A0IiDR1Qy31Yxk322wzr2Gac845K5vtMsWXdhhckCZpmgwNnYWAEBACQqBRBESaGkVQ7zcdgSFDhvj9vSwjfD2hbUo6LJ5IkyGhsxAQAkJACJSBgEhTGSgqjaYiwBQbG7ra3nFMwSUd4Uo5I03hlF1TBVXiQkAICAEh0KcREGnq09XbNwrHrvC4KMCFQd4A0Vp55ZX95sAHH3ywu/rqq/O+qnhCQAgIASEgBGIREGmKhUU3hYAQEAJCQAgIASFQjYBIUzUe+iUEhIAQEAJCQAgIgVgERJpiYdFNISAEhIAQEAJCQAhUIyDSVI2HfgkBISAEhIAQEAJCIBYBkaZYWHRTCAgBISAEhIAQEALVCIg0VeOhX0JACAgBISAEhIAQiEVApCkWFt0UAkJACAgBISAEhEA1AiJN1XjoVxchEN1KRU4su6jyJKoQEAJCoAsREGnqwkqTyM5v3rvaaqu5FVZYwa244ooOB5janFctQwgIASEgBJqJgEhTM9FV2k1DAJLEHnSzzDKLe/HFF/22KmOMMYY/Ny1TJSwEhIAQEAL9GgGRpn5d/c0vPFNoH374obvuuuvcYost5u6+++7SMr322mvd5ptv7sjjsccec3PPPbe/Li0DJSQEhIAQEAJCIEBApCkAQ5flI3DVVVe5Oeec0x1wwAHud7/7XamkCcJ07LHHeqFPOOEER15M0SkIASEgBISAEGgGAiJNzUBVadYgcM8995RKmtAu/e1vf3O33Xabz2udddZx22yzjTvooINq8tYNISAEhIAQEAJlICDSVAaKSiMTgbJJExlec801lXwhUW+99Vblty6EgBAQAkJACJSNgEhT2YgqvVgEmkGaYjPSTSEgBISAEBACTUJApKlJwCrZagSMNN16663VD1J+oT3KOvDNlBXHnqdkpUdCQAgIASEgBDIREGnKhEgRykDASBPG2nkCZIjVdvPOO6+bddZZ3bTTTusmm2wy95e//MXhWuD3v/+9t5HCuJxj1FFHdWOPPbabcMIJ3eSTT+7jzzzzzG6uueZyCy64oBs4cKBW1uUBXnGEgBAQAkIgEQGRpkRo9KBMBIw0DRkyJFeyaIe22GKLCjE67rjj3BNPPOFee+01N2LECPfzzz97P02QK/w1ffTRR+6ZZ55xaLLOP/98d8QRR7hlllmm8j7ESjZPzlEPGMtz7u+BdpN05MHm+eef937CaNMvvPBCnlcURwgIgS5HQKSpyyuwW8Q30oRrgLzh448/drPNNluF+DzwwAN5X63Ee/PNN93WW2/t0+jvK+vuu+8+bzz/zjvveE/qRx99dAWn/niB77Alllii5rjooosy4YCs42AVH2QXXnih14hyT0EICIG+jYBIU9+u344oHYOJkaaDDz7Ye+1Gk5Qn3HDDDRXSNN9887kff/wxz2s1cdAKzDTTTO6HH36oeYZ8uCzoK4HB/LPPPqspjm01wwO0cZNMMknLpizvvfded/XVV9fI1M4bv/zyi0s6TK7777/fXX/99fazcqY8aC8horTlaaaZxr300kuV57oQAkKgbyIg0tQ367VjSgUhwZ9S9IA85QkMSPvtt1+FOG277bZ1D/Qbbriht20K8zX5IFXRgP1VeDBQEpiKufLKKyvP7H70/Xb9vuuuu9yaa64Zi5OR1aFDh7qFF164JSKCzyKLLOK+/vrrluSXlQl1Fx42VQk2YX1zn3sbbbSR3+swmi6EyQIEqtPagcmmsxAQAuUhINJUHpZKKQEBBh4OCIpdJ0SNvc17Sy+9dIU4MR1SbyD/MJx33nmePJBHGIi31lpruT322MPni30UAy0BjQmD5CqrrOKfo8HptLDLLru4tddeO5Y4Yf/Fnn1GFpopO7jOP//8btiwYc3MplDaTNPuvPPOvg5nn312ZwSePQzROHJv++239/dpB+CEJumDDz6IzYf633fffWOf6aYQEAJ9CwGRpr5Vn322NI8//rhfHQdZmWCCCdyTTz7ZcFkZ0FdaaSX38MMPJ6aF4Tl5LrnkkhUCgjaC995+++3E99r94JNPPnHTTz+9N44PZaHMGNgzlRQlkGG8sq6xG0LDFyWlZaVfbzqUnb0KxxtvPL/hM+mgbZxyyiljydFmm23mDeijmHEfAsr96LN6ZdN7QkAIdC4CIk2dWzeSLILAaaed5gkMJIbpvnrtmyzZc8891w+caQM6A+GgQYN8vjfddJN7//33/XXaO5Z+u8+HH354RYuCLJTlwAMPdFdccYW/XmCBBZo60IMRU4CdZstk9XLWWWf5ugSn3377zeGi4tVXX7XHVecHH3zQ24B9//33lfvYOoEn5bzxxhtL3VexkokuhIAQ6CgERJo6qjokTBoCDE5GYCBO7DVX79c9abGqLs+KuoceesgPrmhoIBwsU29nYJooSkTiNG9MY6633noVeSkruIVHvfjlKT8uHsgrCS9WQzIlZgFZWqm9++mnn7xPr3nmmcevoEubQsSwnrIYzlzPMMMMVVg+++yzVhSdhYAQ6KMIiDT10Yqtp1gMxthv5DnqSb+Md5h2wubEBv5LLrmkrmQhTWirTjnllMz3GcwXWmghN/7447tff/01M34zIyDLpptu6mU3wmNTiMOHD6/K+u677/aOQY20UOboUfVCyT/IH8zIMxq4B+kI649r6tXKFX2n7N/ks88++/g8L7vsstTkiTv11FM7i8fvVmKZKpweCgEh0DIERJpaBnXnZ3TzzTd742EMiKMHWpnwwMFkuwIainHGGccPdtiTxC2vz5KN6RiMey+//PKsqH5whGAxoJ988smJ8dlAONxEODFiAw8YqLG7CTVkOFdEtig5MTL17bffNpBj/a9efPHFnhhF5SJFlvIjszkchYRsvvnm3gs8160I5HPAAQd4OXbaaaca/KIyLLfccn4lZ6vki+av30JACLQfAZGm9tdBn5Pg2muvdYsvvnjuIw9xCUFi0DJ7FAbeeqbp0L6w9cptt90WJl1zzYDPknP8GmGAziq+pEETo+CotidMEONrbGCyjpAQhe9z/emnn/pB/rHHHvOPkA+CC6mLyoXNF/hgRF9PQI4sWXmeFPDKjk1THGnabbfdPJ6QVwJn8MW9RFJoVJ4wXWRi+nKrrbbyjj4h4f/+97/DKDXXyMwCgLjy1ETWDSEgBPokAiJNfbJa6ysUgy4DQp4jLQcG9KJHWnpxz5DRtkmx6ae4eEn3eJ/97CB4SQE8GFTvvPNOjwk+oiAhTz31VNIrmffzYJtWHsgbMpj2iPQmmmiiKs2TCcFUJnFDuyF7luecR1biJAU0TXPMMUcNmQNX6i70ufX00097WdNIbKPyhHKSzyabbOJlM0zPPPPMMErNNfGxEYuS05qIuiEEhECfRUCkqc9WbfGCMXiwtH6FFVZwq622mlt33XXdxhtv7JeoM8DtuOOOlSPJZ03xXOt7g6kn/P9AaOoJEBMcQJ599tmxrzMwMnWzww47VAZJpi8hIWg8QrJg5ApNUzMHVPJkCuvvf/97JR+Mj5EJOzTkCvPHaJln4Yqv2MI26Sb5TzrppFVYkRXYR4neGWec4f7whz/4Z832zn7SSSd5H1yGFdO7aLlo92G9RmFh8+i99torelu/hYAQ6EcIiDT1o8rOKiqDSN4jK61mPocEsGcYtjw28BXNj/cgGSw3j4Y77rjD22+tuuqqVYMo72BDNfbYY/vpJBtgcW4IEYCg1CtPVIa43+THVjAsjbd8IBjki4H6ggsuWCUvPpLiSEtc2s24991337lRRhmlZvXcK6+84mWGABLQhIErZBDiznRrMwJTp5Bg8gm1eWC53XbbeZluueWWKgxNDuKMO+64DjcVCkJACPRfBESa+m/dd2XJGbyWX35574HZiEO9BWElFLZXYYCEYB/EwIo2JPT2DTnhPs8nm2wyt8Yaa1RexeHlyiuvXCEzlQclXjDoIwPeqjHKxyCczWXRcHE/umT+1FNP9bIauStRlFxJke9cc83lbr/99qr4xx13nMOoGryOOeYYTwIhTiz9B99myEs9UtekzxHWHb8h4dQrDkHBMhqwR+M+hFpBCAiB/otAbe/Qf7FQyTscAUgS04QbbLBBKQPrG2+84Y3BQ4eG5BEeISQM5nagqTDSxpnpTGx4QpIVvlvGNZoxppEwmjY5LN0o0UAmfFoNHjzYorTlzBYl1JkF5IKcYB8EhqHGJ8TU4pd5Ju8oTqRv9w1TfkcD04eQ9bj3o3H1WwgIgb6LgEhT363bPlUyBjI0FKxe+vnnn+sqG2mEm6ryG7sttB2NBrQQDKjYPTUjICtkcfXVV881cLMhL36Q2ukaAhxYkTb55JNXVqaB0RRTTOHw7t4tgWlGpkTRJioIASHQvxEQaerf9d81pUeLw15hX3zxRd0y77333lXOFEnohRde8PY0ocajngzwz3TBBRfU82qudyAbGL7b5rJpL+FqAHLZKYM8tktmpG6+ox599NG0InTUs2OPPda7dZCWqaOqRcIIgbYgINLUFtj7T6Zsgvrhhx/6AjPosNrryy+/rExt5UECmxg8S7PvWz0BLQ3LyWecccaq6SBLCxlZAv/mm2/arY48oyWjLFmBFYFXXnllVrSWPafe8edkMmEI3i2B6VamEkWYuqXGJKcQaC4CIk3Nxbdfp47mZbHFFvMGtEwXLbXUUg4HgRNPPLE7/vjjcxEASBbTOWiEigTIBQMdPpXQzjB9dthhhxVJQnFLRCAP2Ssxu1KT6mbZSwVCiQkBIeBEmtQImoIAhAXD2W+++cYTFrxW29c6xCnPKqmPPvrIL6PHXxLTO9EDI2dWjGFHxL5lbHFCHFaWYfsz22yz+bwhTBzvvfdeU8qqRIWAEBACQqB/ICDS1D/quS2lhMDY7vC2vQhf7UyFsYLKSFSccDxbZZVVqkiPkZ96zjgulMYgDmndEwJCQAgIgbwIiDTlRUrx6kIADRDOII0gYXCN/6NzzjknMz2W1mPHhLfrtOPBBx/0+6sxlYc/HWyTeI9tRL766iv3ww8/+GX6mRkqghAQAkJACAiBFAREmlLA0aPGEECzs+mmm1b5t7GtSFjGHe491lhOelsICAEhIASEQPMREGlqPsb9Nge0S3itxtaIAInCtmmRRRZx2CsttNBCFQ1UvwVJBRcCQkAICIGuQUCkqWuqqvsEZSoO+yN881i44YYbvHE3ZIopt7yB6TyMx/MG0iYvbKdky5QXNcUTAkJACAiBNAREmtLQ0bOGETADcEsIAvPWW281XcOEf53TTz9dpMmA11kICAEhIAQaRkCkqWEIlUCzEUBjhF+n77//vlBWJ510kkhTIcQUWQgIASEgBNIQEGlKQ0fP2o7Arbfe6jjWWWcdP53H6jh2q086sJmywBRdHn9QFl9nISAEhIAQEAJpCIg0paGjZ21HgOk9XAdgG2X7wzHFl3aY0JAm2TQZGjoLASEgBIRAowiINDWKoN5vOgJDhgyprLgjs6hn8OhvE0ikyZDQWQgIASEgBMpAQKSpDBSVRlMRsCm2rbbayueDK4OkI1wpZ6TJHGs2VUglLgSEgBAQAn0eAZGmPl/F3V9AVsKxl9wHH3yQuzA777yzm2OOOfy0HlN09957b+53FVEICAEhIASEQBwCIk1xqOieEBACQkAICAEhIAQiCIg0RQDRTyEgBISAEBACQkAIxCEg0hSHiu4JASEgBISAEBACQiCCgEhTBBD9FAJCQAgIASEgBIRAHAIiTXGo6J4QEAJCQAgIASEgBCIIiDRFANFPISAEhIAQEAJCQAjEISDSFIeK7gkBISAEhIAQEAJCIIKASFMEEP3sQeCcc85xJ598ctVxyimnuMcee0wQCQEhIASEgBDolwi0kDQNd4MHDHCDn+yXOHddoa+88koXPS6//HKRpq6rSQksBISAEBACZSGQSppGDBvoBhw/PJLXCDd0UH3kx6c3YLCLphjJoPbnh0PdwHreq00p8U6PbAPcgAEjj0i5hx8/wA0YNNSNSEwhePDk4CBuOl41+Vr+aedQjqq8nHP8Tns3Uq5Aan/JNiRsjMsR3X4kvB9uVxJNo6t+Z+EVi6W14Z4PgVi8Y3CO/38CrZ424tPxdUu6A93QD0fWZ1jfVeD2ti3SHjgsV+usSqGMH/xv1JV3tO2WIYzSEAJCQAg0EYHCpClpkK9okDzBCchH7KAT93zkIJFQ2Lo75oT0orfDQSeaV0+ZB7vBEKeYwTCaliculYGud2CriZd6I997XrYcMnnSZwNxSr7s8zbRRBP57Ud+97vfOX4T2MqE3xw832uvvVJS6QOPfDtOb5POBeQmKHJYJ6nXwf9G5f/Hp0Pd9+Q94sPh/iNlQNxHQ9XHRKDJjfsfrLTHQNCyLkcSz+oyZCXe077rIltZSeu5EBACQqBJCCSSpoFBhz7ABls648gAHQ4KTZKxJ1nybmLHTzl8B141EDnny2flN41AFQY9nX+NtqEia8LzuEGwCsCe97IGoijBq0rC/zBtSBYB6HkT7RIaJcqzwQYbVLRN3IcwXXXVVf55n9E01QLmeggmxH6wG+7bQxJ2AWkK2k34P5F03ZttXD1zrzpPL1NVu+tpm1WkI+l/pCyNji9j3AdPyr2R/we9mKbErepzeuJVla8XNF0JASEgBNqCQCJpQpqww/df1RUi0COrfx65Z6Uo1EmGaRTtmMN3LfM6zpSFDrq3zEZ2bCqmN9GestXer8SoGqTiBsVKzJEXcXHi7vW+5+WMGWSiJCtT1t4kK1cQog033NCNPfbY7rnnnnP8XmKJJdxZZ51VidMnL0a2vSry/OEIN8LaZE1bayZpypoCD/J2zhO9RIJR1R4bqDmPQ0q7jyadmG+17NHX9FsICAEh0KkI5CRNRiDSvhKrv4ybXeAe0lBenj2kiakQ0hxZ3uMHe+P1Gi0SBu3DsLNKGNiqBot08tODU1ycuHtRVBl8bBCLH4ggTYmDaTS54PewYcO8Zunwww93Rx55pLv44os9eQqiNP2yZdqsOFIUQxCMqPbiGWAexPfxRmqF4q95L+1/KeVZmG5FA9oi0lRKjY/838oqf0SrVkrWSkQICAEh0CACOUkTuVQP4uFgEGfbUUjTVLCD7Em7PMLkSxdqmmo0Cs65YFDMxLxVpKkqn5BA9UpYL2liOm6aaaZxCy+8sNttt91yEyaITt6jV8raqxtuuMGTNiNOnDfbbDN3zz331Eau+44N4EY8g4QS67uH8PQQpwhpGtluwv+NpOvenKr/r+w+9RbVGtqznv83iFXv/0BqPVe1k95Uil71/N+lELoEItRbDsO7V+44GULM4p7rnhAQAkKgXQhkkybfETK/ekFFAAAgAElEQVSoVHfu1R1bMHg0tSQ9A1buVWwFZKE8PQNhdTkrSSQOoj1f+TXaqArxsoEiMthUnpNDXJ4J7wXarV6ZbZXVYDd4UCSfmIGsdxCrlC724qCDDvLEBdcDecJLL73kFl988VzHWmutlZrkjjvu6GaZZZYKWXvvvfe8LJ9//nnqe619GLT7gJiE/xtJ171y9ta9kRLaYVXdjpwqNw2Xj+e1oL3kIx9pGvn/E9MmatpvNE7qh02AQ2/BIlc9eQ9+MqcMqflFktZPISAEhECLEEgkTRVD8Ern1du5I1s4GMRpmjKXvgedcp5B3Oc3oL6ppjxYhoOUH4COH+yn31IHkwo2kRyCATSeEEXip5CmZGxGkqqRMiQNmkn3oxJEf6Pp2XLLLT1R2XbbbSvkJRov+jtOy4TWKu5+9F37Tdy//e1vDtJmAQP0qaaaqmKYbvfLOeccyGmzVXUekIWgzsP/jaRrL7cn4r0kt6quSS+oW4zSmTb27el4XF8EebfKpsnArvmAqJbFovWeaatG8LLiRvuW3lR0JQSEgBBoNwKJpAnBKh1+pHNPIxKVjj8YRJILWU3E4uPRyTKwWKcbH6vRuzWkKerzpmagSMmxqux5yhgXJ+5ebZ6+jjw+MVNMWYNpbXL+zrfffuvGH398v0pu6aWXdhNMMIH7+OOPE2JX344jR0n3qt/s/fXTTz95snbppZf6m7y/6aabujXWWCM3eetNLc9V9kBOKpX/h0qSve+F7SeMF3/dU7c9GtOEeq76n4ur2968ESeVHFe1x4rw9V8EhK4nEfsf7SWA1kdU+oNKbtVyV24HFyFmwW1dCgEhIATajkA+0lQj5shOsmqKKRIpV0edMGD4pEYOLE3ULoUS+466ov2yQSro4CukiXv2PEwhuK4qe1oZ7Z24OHH3LH547sXJNBPh09TBNIw48vr55593M888s3vhhRf8nSFDhngCc9ppp8XErr2Vd3pu4MCBtS+PvHPjjTf6PB999FF/B9I0++yzu0MPPdS9+OKL7r777kt8t74HQT2nJJA8mI/8f0ghryQb/35CPRtpCjRb1e9Xy5xaz1XtMaWAOR+RV3Vbq5YlPZkQq1qSZWSrOv30FPVUCAgBIdAqBOogTT2dvLevoGMPOvUqoXN11PEDhu+UGYDSSFlVZtU//OBS8F3eMZuRntR6OvfKl3KFNJlR+EhDXRvcKoRr5EBQyT8gNZE4lbTrmp7rkbK3rCPzidRH6mAawIZ254orrvB2RG+//XblCVNrTJVhX8R1ViBO3iMpLQzP8Qll+UGS+M2UIa4Q7r333vhXfV3Uo5HMN+hXk5ZeEUIS4eMkEP349yP/A0F7GjhoYNX/QHVdVstc/axXNn+V638x8k7ST9Ia2Y5722+1LEmv9tzPjhuPU3qqeioEhIAQaAUChUiTDQi9naVt2xGjeQk6V+tkk85her0DEJ1rfdNyqQNIAqqUrZc0RQYy3glJk08D+WLKzbOqQSomrRoZ4uLE3at+sac+EmQYGTUPFnj7nnrqqT0xgZzw28Lqq69euQ9xYgVbMwNaJUgacpx//vleloMPPtjLx8o52lBiqMI9MVbMA2trKZoPI7xVpLSnjmrIvW/7teQtngz01rNv+1XT0CPT93lyHaZZTT7S6jk+3xgYsm6NJHT+/9XInZetWpb0ZLLjliZvuiB6KgSEgBAojEAiaTJDcIhEz+CcZoRtg07QqecawHoHDC85HXFFQ9NTFss7iXD13A/y9Vqb8Hc+TMinlzT1vlOVf9WA2Run5qqq7JEyhpH94JpjoLYBOzgPvq0Wq0rSVelmYwFRQatje8vx24Ld/+2331riCZz8xhprLHfbbbe5V155xd19991eFKYLIU/ImBSS6jApfu/97IGcuL4tVNpAT73GtZnedO2joreOKx8IVXWURnx78vHtvOp/o1rmKGnqIWAx+VYJV+RHfHmj+cT9n1ZjVC23SVD1fxasELXnOgsBISAEOgGBRNLUCcLVJUONRqiuVPRSmxBAmzTmmGO6r776qqAEKeS0YEqKLgSEgBAQAkIgDoG+R5riSql7XYMAbgaYngu1XV0jvAQVAkJACAiBPo2ASFOfrt7uKxz2VHmdaXZf6SSxEBACQkAIdDMCIk3dXHuSXQgIASEgBISAEGgZAiJNLYNaGQkBISAEhIAQEALdjIBIUzfXnmQXAkJACAgBISAEWoaASFPLoFZGQkAICAEhIASEQDcj0NGkiRVUWkXVzc2rubLTNsxreHNzUupCQAgIASEgBJzrONLETvYLLbSQu+SSS9xWW23l/v73v7svv/xSdSUEPIFee+213TrrrOM3EV5zzTV9+xCxVuMQAkJACAiBViDQUaTppptuctddd52bfPLJ3X777efLz0atTz31VCuwUB4djgAewZ944gm/xcpZZ53lSZTaR4dXmsQTAkJACPQhBOomTXzdDx8+3O88j0PCssL777/v0DbZ1Eu4cWtZeSid5iPw7bffuscff9wdeOCBrsz28eyzz7oZZpjBt4/XX3/dTTzxxP66+SVSDkJACAgBIdDfEaiLNEFoIDNMkzB9VuageOmll/o0sVV57bXX3EYbbeQ1TZqC6Z6mSt3RPgYNGuTPZbYPtE2WHtom8rnoootEnLqneUhSISAEhEDXIlAXaaK0kBgOtrywQawMFHbddVe/MStpHX/88W6ZZZZxe+yxRxlJK40WIgBxMvJUVvuw9nbrrbf6kpxwwgmeNB1++OEtLJmyEgJCQAgIgf6KQN2kCcBsECtrUCTN++67r1IX33//vWMDVwZfhe5DoGzSBAJh+2AKkPZBO1QQAkJACAgBIdBsBDqONDW7wEq/dQg0gzS1TnrlJASEgBAQAkKgGoFSSNPee+9dnap+CQHnSp+eE6hCQAgIASEgBNqJQCmkabvttstdhgMOOMDtvvvujnc233xzt+GGGzp87+Q9NtlkE++/aZdddvFuCTQ1kxv6lkcsqmmiLpnqZcUdRHy33XZzO+ywg69vjMo33nhjt+6666a2lbB97L///pq6a3mtK0MhIASEQN9FoBTSNHDgwFyDE4Miht6seOJggBw8eLA7//zz3bBhw9ztt9/ubVSwU7n77rv9NWcOVtUdd9xxbv3113djjTVWJQ3i9qUARpCNpCNPWXkXbF944YU80ZsWpx7StPTSS1fq9uqrr660B+o52i7sHueLL77YHXnkkW7FFVd0o4wySiWN9957r2nl65aEcdNAe/j666+7RWTJKQSEgBDoSARKIU14Zs6r8fntt9/ckksuWRnUcGhZJJDPV1995VgxBfFCs8Dg3FcC5cOxJ0Q0PCgnLhiywjPPPONxefnll93CCy/sLrjggqxXmva8KGlCEByZjj/++L4M+GMqSnrA77PPPnPHHHOMT4MVmP05PPjgg+7KK690zz//vJtlllncVVdd1Z/hUNmFgBAQAg0hUDdpYnDiwOXAsssuW9GM5JEGp5gDBgzwg9qMM87oRowYkee1mjiQCIjTK6+8UvOMG/fee2/s/U6+CaaUK+7AmaOF+++/P5ao4scI31kEtqJZaaWVYuNZOs06U46QNFl7yZPfeeed5+uVumX6tl5S/Oijj7r55psv9n3kueOOO/KI0xVxWFUYhxNtwdoD2qZtt922Le2hK0CUkEJACAiBDATqIk0MOHTEECYGNo5FFlnE/87Ir/J4yJAhlXfRopBmPeGuu+7y6UTfZTqPQSIamPLhy5uDr26mdghvv/22e+SRR/wX+VtvveWI1+pAnsjEce2117pbbrnFi2D3P/nkE/f000+7a665xjHlwlRWHG6UhcBAyj5+rQ5x7YO2gq1SnsD722+/faV9MIUbV848aR111FGeKIRxSevUU0+tkInwGUQ7nPazOnjnnXd8+3jzzTfdSy+91Jb2EcoZvaatYy8Yh5PdO+SQQ2LLHE1Lv4WAEBACQiAegbpIE0nxVRt3xGdTe5eOHGNwI10MYvUGGxTsfTQyq666auyXN5qY1Vdf3ec72WSTVRxpMqCYLBDCvAO85dnomTKstdZaXmuHHMiw8847+2RNtnHHHdfNPffcFZm33nprbyMWLb/JQhrnnnuu/Wzp+T//+Y/H3860lSQ54wT74Ycf3KKLLurrZLTRRnMPPPBAXLRc96L5QpgxNI/TzLAggelmqwPaC8HqAA0puMYR8lzCNCkSZZx55pm9bVdSFkzPtdvOLUk23RcCQkAIdAMCdZOmMgr33XffebsbBqhxxhnH72XXaLoMhJCP66+/PjEp4mAvQ742cHLmN1M67QzYIiEHU5422DOdudRSS7lff/21SrQ33njDjTnmmBVtWfgQ0gcBsPKFz+q5Nlnqebfedx5++GFfPvBYcMEFvS1bvWnZe+CxyiqrZLaPaaedtqoOeI+pzueee86S6rgzmxnPOuussThB8l588cVKm+o44SWQEBACQqALEGgraQIfpkIYFDmWX375hgd5s3P68ssvU+E//fTTfZ7kjzYEovXqq6+mvtOKh5CTLbbYwst24403es0AGoIvvvgiNnsGQ0hAGM4880xPmEgLY/JGCA9k4ZRTTvHphXm06vqMM86otA9cVDRSFmS+4YYb3OSTT57azsgDVwe0SabraB/zzjtvLDltFQ558kFuNGNRLSkfJJ9++qkv8+KLL94whnlkURwhIASEQF9EoO2kiY6egd+I06GHHtpQp37OOef4KayswfWnn35y4403nsPfExqZIr6mmt0QWPEEHrhXYAk9NkxJAdutmWaaqUICmDr605/+5CaZZBI3++yzezuzerRNvAMmU045pVtvvfUc9lTtCMjBNKS1D/aby6rbNDmpb+ylssJDDz3k8yT+RBNN5G3gst5p5nPKjKYoDHH1evbZZ1cZz6Mdg/CFbhji3gvT1bUQEAJCQAjEI9B20oRYdOKhUfltt90WL23GXdKBAOEEMSswCO24445u+umnd/vuu29DA3FWXkWfU45pppnGD9r4H0oLLNEfY4wxvDaEeFFDZjRpRUgGeW+66aZee4XdD/u7tTt888033qDdiFMj7WOFFVZwEK+sYHWAlu+KK67Iit7U59TflltuWbUS8v333/ftIzqdjOH6XHPNVSHRoVE71924orSp4CpxISAEhEABBDqCNCEvHboNimhIPvroowLF6InKQAf5OuywwzLfZSBCS0OeOM3spIBspn0Dl7SAndMf/vCHuvAK0zWytMACC/gpLKakOimU0T4oEyTowgsvzCxaWAes9GxnoG4mmGACd9ppp1XEsNWnPAsD/pj++Mc/up9//jm8rWshIASEgBAoAYHcpImvfaZrihxF5TOiAJGpx4iZgQ7SlDadhUwMNORFWYg/9dRTJw4yrJqK2gxFy4UNSdZBfnkCZWBKCKeUo48+up8a415S4BnTc08++WRSlMz72EDhvgDbpbS80hLCFUKRtlHU6SRyhe2DvIrKSr2PPfbYLsuhKulSB5CrrDpgOpQp4bSQ1TZ4ntY+jDDiGZ9AOfj/mH/++WswwPEr/z/R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c59zxx9/vFtbWyNMTjzxREo3gGaPwH//+1+Hn63mzR5bk2gIlBAw0lRCxtINgSVGABPtxsaGu/DCC90znvGMmU28d911lzviiCNIHib0ww8/3N1xxx1LjOShMe2HP/yhO+WUU4ignn/++USeDo0m1qohsLUQMNK0tfrbrDUEiND83//9H026z3zmM2dKmr70pS85yARh2rNnjzv66KPdu9/9bvf973/fkJ8hAs997nOJ9ELkcccd5y699NIZSjdRhoAhUELASFMJGUs3BJYYAb5JG6tMs1xp2rFjh3vPe95DyOES3bZt29wrX/nKmSLJus9U6IIJe+1rX+tuueUW0vq8884jArxgJpi6hsBCImCkaSG7zZQ2BKZHAORj1qTpe9/7XlAMl/8e9KAHuZtvvjmkTXuAFayLL77YffKTn5xW1FzWx6rcFVdcMehyKVb2cC+ZbYaAIbD5CBhp2nyMrQVDYC4R2AzStJmGQt/Pfvaz7l3vetcgUrGZOs1a9t133+1WVlbc+vp6lY1Y1Xv+858/azVMniFgCBQQMNJUAMaSDYFlR2DRSBNWro455hh34MCBpe6a6667zh155JFu7969nXZedtll7tRTTyVyBSJpmyFgCGw+AkaaNh9ja8EQmEsExpCmd77zne5Nb3qTwz01r3jFK9xpp53mTj755Orfy1/+cveqV73KnXvuue7tb3979VNf//nPf9zTnvY0d9FFF80llrNWCveDvehFLyri8+EPf9g97GEPc2eddZb76Ec/Sqtvs9bB5BkChkCOgJGmHBNLMQS2BAJDSRPK40ZvPHmHH+6/mUwm9OTWrl273LXXXutuvPFG+t1www1hj+MvfvGLbufOnbQygvucWAbK12xXX321e/KTn1x1yapG3qEog/uxSr9Un7///e/uCU94gvv617+eZtE534vG+y9/+ctqOUs0BAyB2SJgpGm2eJo0Q2BhEBhKmmDYfffd50444YRAevBCyyEb2vzrX//qPvShD5EMrDyBSHRtyMd9O6izyBtex7C6upr9cP+StoGUwm5glm5IS39pGTs3BAyB2SNgpGn2mJpEQ2DuEeAJl1cqeAWkRnHcW4SblbFa9MQnPnH0Z1Jwye3YY491t912W2ez11xzjXvgAx/ofvvb33aWm/fM22+/3ZV+mu7A5QEPeICD/bYZAobAfCBgpGk++sG0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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Variance \n",
    "\n",
    "$var(x) = \\frac{\\sum_{i=0}^n(Xi-\\bar{X})^2}{n-1}$\n",
    "\n",
    "根据方差的定义，以前在学校学的时候就很困惑，为什么无偏方差（unbiased variance)的分母是n-1？ 困惑了很久但是没去了解一下。 \n",
    "今天去看了相关的解释，根据我的理解： 由于总数据E期望并不确定（并不是单纯的计算均值，根据数据分布方式不同，E也不确定）就无法确定方差， 但是可以知道平均值，用平均值替代E期望来算，经过证明会发现，如果使用n来计算，会倾向于低估真实方差var。数学上的证明是如此。 看到一个举例子的更容易理解：   \n",
    "\n",
    "例如一家啤酒厂每天生产1万瓶啤酒，我们想知道这些啤酒的质量差异性如何，可以打开这1万瓶啤酒测量，再把所有测量结果代入到上面的公式里求方差，在计算中，没有漏下任何一瓶啤酒的数据。\n",
    "好方法是对出厂的啤酒进行随机的采样，计算这部分样本的方差。\n",
    "\n",
    "例如，随机的从产品中找出100瓶，用这100瓶来估算1万瓶啤酒的质量差异，注意，除了这100瓶的数据，其他9900瓶啤酒数据是完全未知的。\n",
    "样本方差它是从全体数据中随机取出一小部分所做的计算，用这个局部的100瓶啤酒的方差去估计全体1万瓶啤酒的方差。\n",
    "公式里的分母n-1，就是这么来的，那个减去的1，就是用来校正样本所带来的偏差，他不代表某一个样本，而是对自由度的补偿，让缩小的样本方差重新变大一点。    \n",
    "\n",
    "![image.png](attachment:22c7e779-4899-4c42-92c6-9037689ce99f.png)\n",
    "\n",
    "\n",
    "# Covariance协方差\n",
    "$cov(x,y) = \\frac{\\sum_{i=0}^n(Xi-\\bar{X})(Yi-\\bar{Y})}{n-1}$  \n",
    "度量各个维度偏离其均值的程度。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.61655556, 0.61544444],\n",
       "       [0.61544444, 0.71655556]])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算XY协方差\n",
    "def cov(X, Y):\n",
    "    assert len(X) == len(Y)\n",
    "    somme = 0\n",
    "    for i in range(len(X)):\n",
    "        somme = somme + (X[i] - np.mean(X)) * (Y[i] - np.mean(Y))\n",
    "    return somme/(len(X) - 1)\n",
    "\n",
    "def cov_inter(target, feature_axis=0):\n",
    "    if feature_axis == 0:\n",
    "        covariances = np.zeros((target.shape[0], target.shape[0]))\n",
    "        for i in range(target.shape[0]):\n",
    "            for j in range(target.shape[0]):\n",
    "                covariances[i, j] = cov(target[i, :], target[j, :])\n",
    "    else:\n",
    "        covariances = np.zeros((target.shape[1], target.shape[1]))\n",
    "        for i in range(target.shape[1]):\n",
    "            for j in range(target.shape[1]):\n",
    "                covariances[i, j] = cov(target[:,i], target[:,j])\n",
    "    return covariances\n",
    "\n",
    "sample = np.asarray(sample)\n",
    "cov_matrix = cov_inter(sample, 1)\n",
    "cov_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "特征根： [0.0490834  1.28402771]\n",
      "特征向量 [[-0.73517866 -0.6778734 ]\n",
      " [ 0.6778734  -0.73517866]]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1b6bcac70d0>]"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算特征根和特征向量\n",
    "eig_val, eig_vec = np.linalg.eig(cov_matrix)\n",
    "print(\"特征根：\" , eig_val)\n",
    "print(\"特征向量\", eig_vec)\n",
    "plt.plot([eig_vec[:,0][0],0],[eig_vec[:,0][1],0],color='red')\n",
    "plt.plot([eig_vec[:,1][0],0],[eig_vec[:,1][1],0],color='red')\n",
    "plt.plot(x, y, 'o') "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 依然记得好像老师说过特征向量之间是正交的，计算特征向量也是哪个公式来着，利用正交算出另一个，PCA其实就是利用特征向量的这个特点，重新构建新的空间体系\n",
    "\n",
    "- 特征向量代表着数据的pattern(模式),比如一条代表着y随着x的增大而增大的趋势， 总而言之是一个特征在另一个特征上的投影的基底\n",
    "\n",
    "当时考试的最后一问就是计算出降维后的结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "eig_pairs = [(np.abs(eig_val[i]), eig_vec[:,i]) for i in range(len(eig_val))]\n",
    "eig_pairs.sort(reverse=True)\n",
    "# Select top K feature\n",
    "k = 1\n",
    "feature=np.array([ele[1] for ele in eig_pairs[:k]])\n",
    "new_data_reduced=np.transpose(np.dot(feature,np.transpose(sample)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1b6bf621b20>]"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot([eig_vec[:,0][0],0],[eig_vec[:,0][1],0],color='red')\n",
    "plt.plot([eig_vec[:,1][0],0],[eig_vec[:,1][1],0],color='red')\n",
    "plt.plot(x, y, 'o') \n",
    "plt.plot(new_data_reduced, [0]*10, 'x')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.82797019],\n",
       "       [ 1.77758033],\n",
       "       [-0.99219749],\n",
       "       [-0.27421042],\n",
       "       [-1.67580142],\n",
       "       [-0.9129491 ],\n",
       "       [ 0.09910944],\n",
       "       [ 1.14457216],\n",
       "       [ 0.43804614],\n",
       "       [ 1.22382056]])"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.decomposition import PCA\n",
    "pca=PCA(n_components=1)\n",
    "pca.fit(sample_origin.T)\n",
    "pca.transform(sample_origin.T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.82797019],\n",
       "       [ 1.77758033],\n",
       "       [-0.99219749],\n",
       "       [-0.27421042],\n",
       "       [-1.67580142],\n",
       "       [-0.9129491 ],\n",
       "       [ 0.09910944],\n",
       "       [ 1.14457216],\n",
       "       [ 0.43804614],\n",
       "       [ 1.22382056]])"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data_reduced"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
